import random

# 生成一个包含10个不重复随机数的列表
list_num = []
for i in range(10):
    num = random.randint(1, 50)
    while num in list_num:
        num = random.randint(1, 50)
    list_num.append(num)

# 打印列表
print("随机数列表：", list_num)

# 获取用户输入的数字
usr_num = int(input("请输入一个数字："))

# 定义left和right指针
left, right = 0, len(list_num) - 1

# 排序列表
list_num.sort()

# left指向最小数，right指向最大数
# 如果和等于输入值，则输出
# 如果和小于输入值，则left右移一位
# 若和大于输入值，则right左移一位
found = False
while left < right:
    if list_num[left] + list_num[right] == usr_num:
        print(f"找到两个数之和等于{usr_num}的数字，{list_num[left]}和{list_num[right]}")
        found = True
        break
    elif list_num[left] + list_num[right] < usr_num:
        left += 1
    else:
        right -= 1

if not found:
    print(f"没有找到两个数之和等于{usr_num}的数字")
